\section{Preliminary}
\label{sec:background}


\subsection{LPL Overview}
\label{subsec:LPLOverview}
LPL is a common MAC-layer technique adopted in WSNs for saving energy consumption.
Nodes work in LPL periodically wake up and perform CCA to check whether there is active channel activities.
If there is, nodes remain awake for potential packets; otherwise, nodes go back to sleep.
Under unsynchronized networks, sender is aware of the receiver's wakeup interval but not exact wakeup time.
Hence, sender transmits a preamble stream at least as long as the receiver's wakeup interval for ensuring the receiver could sample this channel activity and wake up.
X-MAC \cite{bib:XMAC} modifies the method by inserting address information and periodic gaps in the preamble.
When receiver wakes up and perform CCA, it may decode the destination address and see whether it is the intended receiver.
If it is, it uses the gaps to send back an acknowledgement.
Then sender will immediately transmit the payload.
BoX-MAC-2 \cite{bib:BoXMAC} further refine this method by replacing address information by entire data packet, eliminating the procedure of exchanging payload after the acknowledgement.

CCA is the crucial component in LPL.
A common implementation of CCA in WSNs is detecting whether the channel's energy level exceeds some threshold or not, which is known as \emph{energy detection}.
It is commonly used in low power radios such as Chipcon CC2420 and generally identified as a critical feature of WSNs hardware design \cite{bib:bulidingBlock_SenSys08}.
After waking up the radio, microcontroller samples CCA pins for certain times and regards channel as busy if certain number of samples are positive.
In the default settings of BoX-MAC-2, the de facto standard LPL implementation of TinyOS, the energy threshold is -77dBm.
Nodes under BoX-MAC-2 wake up and perform 400 times CCA, which takes 10ms.
If more than 3 CCA are positive, nodes keep awake for potential packets until packet is received or after certain time, which is 100ms by default.

\begin{figure}[t]
\centering
\includegraphics[width=3.5in]{figure/draft-2.pdf}
\caption{Overview of the usage of 2.4GHz of different technologies}
\label{fig:spectrumOverview}
\end{figure}

\subsection{Wireless technologies operated in 2.4GHz band}
\label{subsec:wirelessTech}
The unlicensed 2.4GHz ISM band embraces numerous wireless technologies.
However, the technologies operated on it usually does not include design of tolerating other technologies.
This makes cross-technology radio interference becomes an increasing problem for low-power WSNs.
ZigBee devices have to share the unlicensed spectrum with a variety of other devices such as WiFi devices, Buletooth headsets, microwave oven, cordless phones and various game controllers.
Each such device can lead to interference to ZigBee's communication since ZigBee's underlaying standard (IEEE 802.15.4) has no explicit mechanism to recognize non-ZigBee interference.
ZigBee's transmission is prone to have bit errors due to the external interference, as previous studies shown.



%
%There are many attempts made to help ZigBee coexists with other technologies.
%Most coexisting approach rely on the knowledge of existing interference source to improve performance.
%However, knowing what interference sources are there in neighborhood is not trivial.
%Much of the prior work has employed custom hardware to analyze the unlicensed spectrum to deconstruct the interference.
%For example, commercial products such as AirMaestro and Wispy
